package br.com.mftc.efitness.beans;

import java.util.ResourceBundle;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;

import br.com.mftc.efitness.util.Variaveis;

@ManagedBean(name = "mensagens")
@ApplicationScoped
public class MensagensBean {

	@ManagedProperty("#{str}")
	private ResourceBundle strings;

	public void addMensagem(FacesMessage.Severity severity, String titulo, String texto) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, titulo,  getMensagem(texto)));
	}
	
	public void addMensagem(FacesMessage.Severity severity, String titulo, Exception excecao) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, getMensagem(titulo),  getMensagem(excecao)));
	}
	
	public void addMensagem(FacesMessage.Severity severity, StringBuffer titulo, Exception excecao) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, getMensagem(titulo),  getMensagem(excecao)));
	}
	
	public void addMensagem(FacesMessage.Severity severity, StringBuffer titulo, StringBuffer texto) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, getMensagem(titulo),  getMensagem(texto)));
	}
	
	public void addMensagem(FacesMessage.Severity severity, Exception excecao) {
		FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, getMensagem(Variaveis.EXCECAO_TITULO),  getMensagem(excecao)));
	}
	
	public String getMensagem(String identificador) {
		return strings.getString(identificador);
	}
	
	public String getMensagem(Exception excecao) {
		return strings.getString(excecao.getMessage());
	}
	
	public String getMensagem(StringBuffer identificador) {
		return strings.getString(identificador.toString());
	}
	
	public ResourceBundle getStrings() {
		return strings;
	}

	public void setStrings(ResourceBundle strings) {
		this.strings = strings;
	}
}
